Parallel distributed network management

ABSTRACT

In a network of a plurality of machines and a server, the machines have self-organized into a linearly ordered sequence in accordance with a predefined order of their respective machine identifiers. The linearly ordered sequence includes one or more local segments each include a first machine followed by a sequence of second machines. A query regarding management information of a local segment is injected into the network at the first machine of the local segment. The query is forwarded along the local segment, and each machine in the local segment responds to the query by adding its own local information to any answers already accumulated in the payload of the query. A second machine in the local segment sends a report message containing aggregated management information that has been collected in the payload of the query to the server.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.14/530,601, filed Oct. 31, 2014, which is a continuation of U.S.application Ser. No. 13/107,625, filed May 13, 2011, now U.S. Pat. No.8,903,973, which is a continuation-in-part of U.S. application Ser. No.13/084,923, filed Apr. 12, 2011, now U.S. Pat. No. 8,904,039, which is acontinuation-in-part of U.S. application Ser. No. 12/412,623, filed Mar.27, 2009, now U.S. Pat. No. 8,086,729, which claims benefit of U.S.Provisional Application Ser. No. 61/113,060, filed Nov. 10, 2008, andU.S. application Ser. No. 13/084,923 claims benefit of U.S. ProvisionalApplication No. 61/323,733, filed Apr. 13, 2010, all of which areincorporated herein by reference in their entireties.

INCORPORATED DISCLOSURES

This application includes as Appendices all or portions of the followingdocuments and claims priority as set forth above:

APPENDIX A

U.S. patent application Ser. No. 13/107,625, filed May 13, 2011, nowU.S. Pat. No. 8,903,973, issued on Dec. 2, 2014, entitled “ParallelDistributed Network Management” which includes inventors: David Hindawi,Orion Hindawi, Lisa Lippincott and Peter Lincroft, and assigned toTanium Inc.

APPENDIX B

U.S. patent application Ser. No. 13/084,923, filed Apr. 12, 2011, nowU.S. Pat. No. 8,904,039, issued on Dec. 2, 2014, entitled “Large-ScaleNetwork Querying and Reporting” which includes inventors: Orion Hindawi,David Hindawi, Peter Lincroft and Lisa Lippincott, and assigned toTanium Inc.

Appendix C

U.S. Provisional Patent Application Ser. No. 61/323,733, filed Apr. 13,2010, entitled “Large-Scale Network Querying and Reporting” whichincludes inventors: Orion Hindawi, David Hindawi, Peter Lincroft andLisa Lippincott, and assigned to Tanium Inc.

Appendix D

U.S. patent application Ser. No. 12/412,623, filed Mar. 27, 2009, nowU.S. Pat. No. 8,086,729, issued on Dec. 27, 2011, entitled “DistributionStatistical Detection of Network Problems and Causes” which includesinventors: David Hindawi, Orion Hindawi, Lisa Lippincott and PeterLincroft, and assigned to Tanium Inc.

Appendix E

U.S. Provisional Patent Application Ser. No. 61/113,060, filed Nov. 10,2008, entitled “Distributed Statistical Detection of Network Problemsand Causes” which includes inventors: David Hindawi, Orion Hindawi, LisaLippincott and Peter Lincroft, and assigned to Tanium Inc.

BACKGROUND

In a network of communicating machines having relatively large numbersof devices, such as for example an enterprise network or other computernetwork, the amount of computing assets, and the amount of availabledata for use by those computing assets, grows rapidly with the size ofthat network. Managing such networks, including obtaining informationregarding those assets and data, and modifying allocation of thoseassets and data, can be a Herculean task, often requiring substantialcomputation and communication.

One known problem in the art is that the computation and communicationneeded to manage such a network is often not readily available, and evenif available, would take relatively large amounts of time to performmanagement operations. This has the effect that latency in providinganswers to questions about the network, or in performing modificationsto the network, is relatively high, with the effect that real-timemanagement of such networks can be infeasible when the network isrelatively large. It typically takes more time to collect informationabout the status of devices coupled to the network than it takes forthose statuses to change, making collection of that informationimpractical, inaccurate, untimely, and otherwise unsatisfactory. Ittypically takes a relatively large amount of communication andprocessing resources to bring that information to the attention of anetwork operator, such as someone operating a network control server.

Known systems attempt to ameliorate these issues by performing somedegree of aggregation or processing of data at intermediate controllevels, with the effect that there might be several levels ofindirection before information from a device is finally delivered to thenetwork control server. These techniques do not scale well, so that anetwork with (say) 100,000 nodes would likely still take several hoursor more to report the status of individual ones of those nodes, or evenof an aggregate thereof. In that time, many nodes will likely havechanged their status, making that report obsolete.

Known systems also amass information about network devices into one ormore relatively large databases, so that network operators can querythose databases for information about the network. These techniques alsodo not scale well, so that a relatively large network would have enoughinteresting data to swamp the operations of that database. One result isthat only relatively few database queries can be made within resourcelimits of the database or its servers.

SUMMARY

In a network of a plurality of machines and a server, the machines haveself-organized into a linearly ordered sequence in accordance with apredefined order of their respective machine identifiers. The linearlyordered sequence includes one or more local segments each include afirst machine followed by a sequence of second machines. A queryregarding management information of a local segment is injected into thenetwork at the first machine of the local segment. The query isforwarded along the local segment, and each machine in the local segmentresponds to the query by adding its own local information to any answersalready accumulated in the payload of the query. A second machine in thelocal segment sends a report message containing aggregated managementinformation that has been collected in the payload of the query to theserver.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a system in an embodiment of the invention.

DESCRIPTION OF THE INVENTION

We provide a network management system in which nearly all computationand data transfers are performed in parallel at leaf nodes of a networkto be managed, with the effect that resource demands on the network formanagement services are nearly zero, and with the effect thatinformation is propagated between leaf nodes and a single server, andbetween that single server and managers (and other network users) inreal time and with sufficient alacrity that status reports are accurate,network changes can be made substantially atomically, and users canmanage the network dynamically. Distributed data in the network isaccessed in parallel by individual network nodes, with managementfunctions being performed in parallel by those nodes. For example, eachnode might have a portion of the distributed data to be accessed, eachsuch portion being locally available at each such node withoutlong-distance communication through the network, with the effect thateach such node can perform computation and possible modification of thatdata without need for using extensive communication resources from thenetwork.

Since each node performs only a relatively small portion of the assignedmanagement functions, the amount of resource drain upon each such nodeis relatively small; when there are a relatively large number of networknodes, the amount of resource drain can be relatively large without theaggregate resource drain on the network being noticeably large. Sincethe network nodes collectively perform the management functions for thenetwork, there is no substantial need for a relativelyresource-intensive network-management system separate and apart from thenetwork. In such a peer-to-peer configuration each node can perform itsown processing operations (such as for example, data collection,computation, and data distribution) with only relatively minorcoordination between nodes. For example, each node can select only aportion of a relatively large problem to work on, and delegate otherportions of the problem to other nodes. In one embodiment, peer-to-peercoordination involves only a relatively small amount of communicationbandwidth, computing power, or memory space at each involved node.

Peer-to-peer. In one embodiment, nodes dispose themselves in apeer-to-peer configuration, with the effect that there is no substantialneed for an external network manager to organize the nodes. In oneexample, a peer-to-peer configuration includes a substantiallynon-hierarchical system in which each node is distributed at an edge,with only a single server at a center or root of the system.Effectively, this forms a one-level tree, in which the single serverserves as the root of the tree, while each node is disposed on the onelevel which includes all the leaves of the tree.

In such embodiments, nodes can dispose themselves in a substantiallylinear orbit about the server, in which each such node seeks tocommunicate only with those other nodes which are “nearby” in the linearorbit, sometimes referred to herein as a “local neighborhood” or a“neighborhood”. For example, a neighborhood might include only a few(such as for example 10 or 20, or another number selected as a systemparameter) nodes further along a linear orbit. Similarly, a neighborhoodof a particular node might include only a few nodes preceding thatparticular node along that linear orbit, possibly a different number ofnodes following that particular node further along in the linear orbit.As noted in the incorporated information, a linear orbit might bedisposed by ordering each such node in response to its hardware address,such as for example its MAC address or other network address. Suchaddresses might be selected as they are viewed either from inside oroutside the network. In such embodiments, where nodes are separated by afirewall or other communication break, communication returns from theleaf level, where the break occurs, back to the server, and from theserver out to another node at the leaf level, to reenter the linearorbit.

This has the effects that

(1) each node need only know the address of only a few relatively localnodes, and of the server;

(2) each node communicates primarily with only a few relatively localnodes, with the effect of using relatively available and relativelyinexpensive communication bandwidth; and

(3) each node can easily insert itself into, or remove itself from, alinear orbit; determine when a new node inserts itself into the linearorbit; and determine when a node in its neighborhood leaves the linearorbit. For example, if a node enters the linear orbit, it can rapidlydiscover its neighborhood with reference to the network addresses ofother nodes. Similarly, if a node is removed the linear orbit, othernodes can rapidly discover that the node has left with reference tofailure of a response from the node that was removed.

In one embodiment, the knowledge that nodes have with respect to theirneighborhoods allows them to rapidly determine what other nodes in theirneighborhoods are doing, to rapidly determine the status of other nodesin their neighborhoods, and to rapidly direct other nodes in theirneighborhoods to perform actions (either individually or incooperation).

Parallel operation. In one embodiment, commands or queries from userseach define a set of such nodes to be operated in parallel, and thedistributed data upon which those nodes operate. For example, commandsor queries from users might define a subset of nodes in the networkhaving selected properties (such as, those nodes having particularinstalled operating systems, or having particular installed softwareapplications, or exhibiting particular known behavior such as memoryleakage). The defined subset of nodes are directed, in parallel, toperform operations defined by such commands or to determine answers tosuch queries, with the effect that the defined subset parallelizes thecommands or queries directed by users, and that those commands orqueries can be completed much more quickly than in serial or by aserver.

Similarly, the data accessible by the defined subset of nodes isaccessed in parallel, with the effect that the need is greatly reducedfor communication resources for distributing that data through thenetwork. Results from each node in the defined subset are aggregated bypeer-to-peer communication. Each such node need only communicaterelatively locally within the network for its results to be collected,aggregated, and reported. For example, when information is collectedfrom a set of such nodes, that information can be aggregatedpeer-to-peer. Similarly, when commands are executed by a set of suchnodes, acknowledgement that those commands were executed can beaggregated peer-to-peer.

This has the effect of making effective use of network assets (such asprocessing and storage at each node), making effective use ofconcurrency of network assets, limiting bandwidth use between networkassets and user stations, and limiting use of assets (such as processingand storage) at user stations. This also has the effect that latency inproviding results is relatively minor, with the effect that managementof the network can proceed in substantially real-time. For example, anetwork having several hundred thousand nodes can perform a managementcommand or a management query in only a few seconds. This also has theeffect that substantial additional network infrastructure is not needed.There is not any requirement for layers of intermediate servers toperform aggregation or distribution within the network, nor is there anyrequirement for allocating any substantial fraction of networkcommunication bandwidth for management.

Rights management. In one embodiment, each node in the defined subsethas sufficient computational power to manipulate results before andafter communication so that those results can be restricted toauthorized users. Peer-to-peer communication is encrypted and decryptedusing a public-key cryptosystem and a secure hash code. In suchembodiments, the server provides the certification authority and thepublic key for the network, with the effect that each node has directaccess to those codes needed to authenticate information from othernodes. For example, when data is downloaded from the server to nodes,each node can determine, using a public-key cryptosystem and a signaturefrom the server, whether the data it receives is accurate and authentic.

Data, commanded modifications, and query results are maintainedconfidential to only those nodes and only those users who are authorizedto see those data and query results, or are authorized to modify thosedata and make those commanded modifications. This has the effect thatmanagement users can be authorized for only a subset of possiblemanagement functions. For example, some users might only be authorizedto review the number of assets assigned to particular uses (such as forexample, monitoring whether license usage is within contract limits),while other users might only be authorized to review whether there areunusual system events ongoing (such as for example, malware spreading inthe network), while still other users might only be authorized toupgrade software applications (such as for example, softwareapplications obtained from designated vendors), while yet other usersmight be authorized to make other and further changes to the network(such as for example reallocating assets from one department toanother). Individual users at user stations might each be associatedwith distinct sets of authorized rights.

Scanners. In one embodiment, a set of network nodes (possibly a subset,but typically substantially all of them) are assigned the task ofscanning their local region of the network for managerial information.These scanning nodes might be changed from time to time, with the effectthat no individual node need be excessively burdened with this task.That managerial information might include the identities and locationsof network features improperly or inadequately configured for networkmanagement. For example, each node might query the nodes in itsneighborhood whether those nodes have proper anti-virus or otheranti-malware software installed.

Those network features might include communication links that are brokenor otherwise not adequately configured, network nodes that are crashed,disconnected, or otherwise not adequately configured, and otherwise.While each individual scanning node does not need to review any largeportion of the network, collectively those scanning nodes can cover theentire network, having the effect of revealing any such deficient linksor nodes with relatively little resource use.

Shards. As noted above, user stations might upload large data units tothe server. The server selects some set of nodes for download of thoselarge data units (or fractions thereof). As each node receives the dataunit (or its portion thereof), that node randomly or pseudo-randomlyselects a fraction of the shards for that data unit to maintain at thenode. The node communicates the data unit (or its portion thereof) to anext node in its neighborhood. In one embodiment, user stations,external to the network, communicate relatively large data units withthe server. Examples of communicating such large data units mightinclude distributing updates to software applications assigned toexecute on network nodes, collecting transaction history or otherlogging files collected by network nodes, or otherwise. These large dataunits are broken into individual shards, which are distributedthroughout the network (or aggregated from within the network) usingpeer-to-peer communication.

In such embodiments, these large data units are communicated betweenuser stations and the server, with the effect that the server need bethe only device that bears a relatively heavy communication load. Theserver downloads these large data units to a relatively small set ofselected nodes, each of which maintains a subset of those shards,selected randomly or pseudo-randomly from the set of all shards in thedata unit. The number of such shards maintained by each node might beresponsive to the number of such shards, the amount of memory the nodeselecting those shards has to maintain them, or other factors.

In such embodiments, each node selects the shards it maintainsindependently of whether those shards are maintained by other nodes,with the effect that if a fraction of the network is not operational,not reachable, or otherwise incapacitated, the likelihood that at leastone copy of each shard is maintained in that remaining fraction of thenetwork that is operational and reachable is independent of the natureof whatever failure mode occurred. All nodes coupled have relativelyeasy access to all shards within their own local neighborhood, so it isgenerally adequate for a neighborhood to maintain only a few copies ofeach such shard. If a particular neighborhood is missing a shard, itsnodes can request that shard from the server or from otherneighborhoods, with the effect of distributing or collecting data forcommunication with user stations with relatively little resource use.

Dashboards. In one embodiment, a set of relatively frequently-askednetwork queries (FAQ's or “frequently-asked queries”) are automaticallyinjected into the network from time to time, with the effect that thoseFAQ's are performed in parallel by nodes as if they were explicitlyinstructed by network users. Responses to these FAQ's are cached, anduser stations maintain a user interface including a dashboard of thecached responses. This has the effect that many such queries need not beinitiated by users, as answers are already maintained available on thedashboard. In such embodiments, dashboards are configurable by users,with the effect that users can maintain a view of relatively freshresponses to such FAQ's with less latency than if those FAQ's wereinitiated only when a response was desired.

Since information collection is performed in parallel and distributedamong leaf nodes of the network, relatively little resource use need beexpended, with the effect that network stations can present the answersto many such FAQ's in real time. Similarly, computations responsive tothose answers can be maintained on the dashboard, including aggregatevalues from multiple such queries, trend lines, and other statisticalinformation.

Similarly, a set of audit or compliance rules are also automaticallyinjected into the network from time to time, with the effect that thoserules are also performed in parallel by nodes as if they were explicitlyinstructed by network users. Known auditing and compliance schemastypically have dozens or even hundreds of such rules, each of which isintended to assure that the network is operating within stricturesimposed by regulation, contract, or administrative policy. For example,it might be a contract requirement for the enterprise operating thenetwork that they have no more than 5,000 copies of Microsoft Excel inuse at any instant. Since information collection and distribution isperformed in parallel and distributed among leaf nodes of the network,relatively little resource use need be expended, both (1) to determinethat the network is in compliance, and (2) to assure that network nodesattempting to initiate excess uses are disallowed from doing so.

Generality of the Techniques

Technologies shown or suggested by this description should be thought ofin their most general possible form. This includes, without limitation,the following:

The phrases and terms “causing,” “directing,” “instructing,” “to cause,”“to direct,” “to instruct” (and similar phrases and terms) generallyindicates any technique in which one or more first devices or methodsinduce one or more second devices or methods to take action, whether ornot that action is assured (for example and without limitation,including a message, a posted change to a data structure, or otherwise).

The terms “command” or “instruction” (and similar phrases and terms)generally indicate any information or other arrangement or disposal ormatter or energy, having the property of being interpretable by acomputing device, or other device, to perform operations (possiblyconditional operations, parallel operations, pipelined operations, orother dispositions of method steps or operations as might be known ordeveloped in the many fields of computing science), whether or notresponsive to inputs, states or state-changes, or other instructions,from any source whatever, or otherwise, or combinations or conjunctionsthereof.

The phrases and terms “constantly,” “continually,” “from time to time,”“occasionally,” “periodically” (and similar phrases and terms) generallyindicate any case in which a method or technique, or an apparatus orsystem, operates over a duration of time, including without limitationany case in which that operation occurs only part of that duration oftime. For example, and without limitation, these terms would include,without limitation, methods which perform an operation as frequently asfeasible, on a periodic schedule such as once per second or once perday, in response to an alarm or trigger such as a value reaching athreshold, in response to a request or an implication of a request, inresponse to operator intervention, otherwise, and to combinations andconjunctions thereof.

The phrases and terms “data,” “information” (and similar phrases andterms) generally indicate any form of bits/digits or values (whetheranalog, digital, or otherwise), collection or content, coincidence orcorrelation (whether causal or otherwise), evidence or logical tendency(whether probabilistic, pseudo-probabilistic or otherwise), or otherindication of any kind from which a computing device, Turing-equivalentequivalent device, user, Artificial Intelligence, or other thinkingbeing, might be able to draw conclusions.

The phrases and terms “data structure,” “database” (and similar phrasesand terms) generally indicate any element in a computing device, orstorage device, or other device, capable of maintaining or identifyinginformation (for example but without limitation, data or instructions,status information, synchronization information, and combinations orconjunctions thereof) for possible use by a computing device or process.

The phrases and terms “distribute,” “to distribute” (and similar phrasesand terms) generally indicate any case in which one or more firstdevices or methods, induce information (for example but withoutlimitation, data or instructions) to appear at one or more seconddevices or methods, whether or not that information is assured to appearthereat (for example and without limitation, including a message, aposted change to a data structure, or otherwise).

The phrases and terms “effect,” “with the effect of (and similar phrasesand terms) generally indicate any natural and probable consequence,whether or not assured, of a stated arrangement, cause, method, ortechnique, without any implication that an effect or a connectionbetween cause and effect are intentional or purposive.

The phrases and terms “methods, physical articles, and systems,”“techniques” (and similar phrases and terms) generally indicate anymaterial suitable for description, including without limitation all suchmaterial within the scope of patentable subject matter, or having everbeen considered within the scope of patentable subject matter, or whichmight colorably be within the scope of patentable subject matter,notwithstanding most recent precedent.

The phrase “on its own initiative” (and similar phrases and terms)generally indicates that one or more devices or methods operate withoutinstruction from an external source. For example, and withoutlimitation, a first device might operate “on its own initiative” if itacts responsive to data or instructions at that first device, orresponsive to data or instructions accessible by that first device, orotherwise without being explicitly directed by a second devices.

The phrases and terms “pseudo-random,” “random” (and similar phrases andterms) generally indicate any technique of any kind, in whichinformation is generated or selected in a manner not predictable to therecipient. In the context of the invention, data, information, numbers,processes, or otherwise, referred to herein as “random,” need not beequidistributed (or have any other particular distribution) overanything in particular, and might in general be pseudo-random inaddition to, or in lieu of, being random.

The term “relatively” (and similar phrases and terms) generallyindicates any relationship in which a comparison is possible, includingwithout limitation “relatively less,” “relatively more,” and the like.In the context of the invention, where a measure or value is indicatedto have a relationship “relatively,” that relationship need not beprecise, need not be well-defined, need not be by comparison with anyparticular or specific other measure or value. For example, and withoutlimitation, in cases in which a measure or value is “relativelyincreased” or “relatively more,” that comparison need not be withrespect to any known measure or value, but might be with respect to ameasure or value held by that measurement or value at another place ortime.

The term “substantially” (and similar phrases and terms) generallyindicates any case or circumstance in which a determination, measure,value, or otherwise, is equal, equivalent, nearly equal, nearlyequivalent, or approximately, what the measure or value is recited. Theterms “substantially all” and “substantially none” (and similar phrasesand terms) generally indicate any case or circumstance in which all buta relatively minor amount or number (for “substantially all”) or nonebut a relatively minor amount or number (for “substantially none”) havethe stated property. The terms “substantial effect” (and similar phrasesand terms) generally indicate any case or circumstance in which aneffect might be detected or determined.

The phrases “this application,” “this description” (and similar phrasesand terms) generally indicate any material shown or suggested by anyportions of this application, individually or collectively, includingall documents incorporated by reference or to which a claim of prioritycan be made or is made, and include all reasonable conclusions thatmight be drawn by those skilled in the art when this application isreviewed, even if those conclusions would not have been apparent at thetime this application is originally filed.

The invention is not in any way limited to the specifics of anyparticular examples disclosed herein. After reading this application,many other variations are possible which remain within the content,scope and spirit of the invention; these variations would be clear tothose skilled in the art, without undue experiment or new invention.

Real-World Nature

The invention includes techniques, including methods, physical articles,and systems, that receive real-world information dictated by real-worldconditions (not mere inputs to a problem-solving technique). Thetechniques provided by the invention are transformative of theinformation received, at least in the sense that incoming data isreceived and distributed, and responses thereto are collected andaggregated. This has the effect that a 1st type of information (such asfor example, widely distributed local states of individual nodes) istransformed into a 2nd type of information (such as for example,collected and aggregated global values reflecting those local states).

The invention includes techniques that are tied to a particular machine,at least in the sense that particular types of communication andcomputation, by particular types of devices, are performed in acommunication network. While this description is primarily directed tothat portion of the invention in which users make requests about, andreceive responses about, the state of the network, there is noparticular requirement for any such limitation. For example, users mightdirect designable connections to be made or broken, designableinformation to be collected and aggregated, and designable nodes toperform actions not necessarily otherwise in their instruction stream.This has the effect that interaction between and among elements of theclaims systems, or between and among steps of the methods, as performedby devices acting separately, produces one or more advantageous effects.

Figures and Text

FIG. 1 shows a diagram of a system 100, having elements shown in theFIGURE, including at least a network 110, a set of nodes 120, and a setof user stations 130.

Network. The network 110 includes a set of communication links 111. Eachcommunication link 111 might include any technique by which informationcan be sent from a first device to be received at a second device, suchas a LAN, WAN, or other technique. For example, the communication links111 might include local networks, direct communication links, orotherwise. In the context of the invention, there is no particularrequirement that the communication links 111 are homogeneous. Forexample, it is contemplated that in many networks 110 the communicationlinks 111 collectively include multiple distinct techniques forcommunication.

The communication links 111 include peer-to-peer communication links111. In one embodiment, peer-to-peer communication links 111 arerelatively fast and inexpensive links with relatively wide bandwidth.

The communication links 111 also include communication links 111 betweena server and network nodes 120 (as described below). Most communicationlinks 111 between the server and nodes 120 are substantially secure;however, one or more nodes 120 might be exposed to insecure environmentsand thus be assigned to a DMZ zone, as shown in the FIG. 1. Suchinsecure environments might include the possibility that the node 120 isphysically accessible by unauthorized users (such as for example,workstations at user desks on a bank floor) or might be electronicallyaccessible by unauthorized users (such as for example, workstationshaving unprotected access to the Internet). Communication links 111between the server and such latter nodes 120 might be secured byrequiring that they use particular selected port numbers, or othersecurity techniques.

The communication links 111 also include communication links 111 betweena server and user stations 130 (as described below), and communicationlinks 111 between a server and server consoles, such as for exampleoperator consoles directly controlling the server. Communication links111 between the server and user stations 130 might use a SOAP protocol,or a variant thereof, or might use a different protocol usable with thetechniques described herein. Communication links 111 between a serverand server consoles might similarly be assigned to a DMZ zone, as shownin the FIG. 1.

In one embodiment, each communication link 111 is disposed to receive,transmit, and deliver one or more messages 112. A message 112 might beunicast or multicast, although usually messages 112 will be unicast froma first node 120 to a nearby node 120 in a local neighborhood (asdescribed below). A message 112 will generally, but need not, include anindication of a header (such as for example a sender and one or morereceivers) and a payload (such as for example information about thenetwork 110, and as described in the incorporated information, atermination code or other information directing processing of themessage 112). The message payload might include instructions or data tobe delivered to one or more recipients. As described in the incorporatedinformation, a message 112 might include a “registration” message 112,in which a node 120 informs a user station 130 of its presence in thenetwork 110, an “instruction” message 112, in which a user station 130directs a node 120 to perform some action (possibly including reportingon, or altering, data), a “reporting” message 112, in which a node 120informs a user station 130 of selected data, a peer-to-peer message 112,in which a first node 120 sends information to a second node 120, andother types of messages 112.

As described herein, the network 110 includes one or more localneighborhoods 113. As described herein, a local neighborhood 113 for aparticular node 120 typically includes those nearby nodes 120 precedingor following that particular node 120 in that particular node's orbit. Aparticular node's orbit, and thus its local neighborhood 113, might bebroken by failed communication links 111, by firewalls 114, or othercommunication obstructions which prevent a particular node 120 fromcommunicating with those other nodes 120 having relatively nearbynetwork addresses.

In alternative embodiments, the network 110 might include one or moresubnets, such as for example LAN's or other relatively close-connectednodes 120. In such alternative embodiments, each LAN may include asubnet of nodes 120 with a common communication link 111 usable bysubstantially all those nodes 120 coupled to that LAN. In suchalternative embodiments, at least some bridging, routing, or other nodes120 might be coupled to more than one such subnet, with the effect thatmessages 112 might traverse multiple such subnets using those bridging,routing, or other nodes 120. Each node 120 might thus be able toidentify a local region within the network 110, in response to whichsubnets to which that node 120 is assigned, and in response tocommunication ability between or among multiple subnets. However, in thecontext of the invention, there is no particular requirement for anysuch use of subnets, use of LAN's as subnets, use of bridging devicesbetween subnets, or any similar limitation. As further described herein,alternative embodiments include such subnets, but they are not requiredfor use in the context of the invention.

Substantially each node 120 includes a computing device (such as forexample one or more workstations or other general-purpose devices, oneor more printers and or other peripherals, or otherwise). In oneembodiment, each node 120 includes a processor 121, memory or massstorage 122, instructions and data directing the processor to performoperations, and one or more communication ports 123, the latter coupledto one or more of the communication links 111, disposed to send andreceive messages 112 between and among that particular node 120 and aset of nodes 120 distinct from that particular node 120.

In one embodiment, each particular node 120 is associated with a set oflocal nodes 120 distinct from that particular node 120 (in a localneighborhood 113 for that node 120, as described herein), for whichcommunication between and among that particular node 120 and those localnodes 120 does not use substantial communication bandwidth from thenetwork 110. In one embodiment, as described herein, each node 120communicates with those nodes 120 in a local neighborhood 113 within arelatively small range of a single orbit, such as for example, thosenodes 120 nearby which follow or precede the selected node 120 in theorbit. Each node 120 might rarely communicate with the server.

User stations 130 are associated with users 131, and include inputelements 132 (such as for example keyboards, pointing devices, voicecommand elements, or otherwise), and output elements 133 (such as forexample audio or video presentation elements, or otherwise). In oneembodiment, user stations 130 include a personal computing device (suchas for example a desktop or laptop computer, a tablet computing device,a smartphone or PDA, or otherwise) having a processor 134, memory ormass storage 135, and instructions and data directing the processor toperform operations.

Network Management. As described below, network management is performedsubstantially entirely by the nodes 120, each operating substantiallyconcurrently. For some examples, nodes 120 might perform one or more ofthe following tasks:

Nodes 120 collect information, aggregate that information, and transferthat information to the server, which is coupled to the user stations130.

Nodes 120 receive information from the server, which is coupled to theuser stations 130, partition that information into sections, anddistribute those sections within the network 110.

Nodes 120 receive instructions from the server, which is coupled to theuser stations 130, distribute those instructions within the network 110,and execute those instructions where appropriate.

Among other effects, this has the effect that resource demands formanagement services on the network 110 and on user stations 130 arenearly zero, as each node 120 communicates only rarely with the serverand primarily communicates with other nodes 120 in its localneighborhood 113. This has the effect that each node 120 uses only arelatively small amount of its capacity for management services.Moreover, user stations 130 are coupled to the server, which uses onlyrelatively small amounts of its capacity for communication with nodes120 or for data analysis.

This also has the effect that information is propagated from nodes 120to the server to user stations 130 substantially in real time; thisprovides for status reports that are substantially accurate, for makingnetwork changes that are substantially atomic. The users 131 at the userstations 130 can manage the network dynamically.

User stations 130 are coupled to the server, which communicates withonly a relatively small fraction of nodes 120, with the effect that userstations 130 can manage the network 110 using the peer-to-peer capacityof the set of nodes 120. In one embodiment, user stations 130 are notrequired to communicate directly with particular nodes 120 within thenetwork 110; however, should that need arise, user stations 130 might bedisposed for random-access communication with selected nodes 120, suchas using a communication technique other than the peer-to-peer capacityof the set of nodes 120. For example, in alternative embodiments, userstations 130 are disposed for TCP/IP communication with selected nodes120. However, in the context of the invention, there is no particularrequirement for any direct communication between nodes 120 and userstations 130.

Self-organization.

Orbits. Each node 120, as it initiates operation, determines itsposition in the network 110. In one embodiment, for example, as in theincorporated information, each node 120 might determine its IP address,with the nodes 120 ordering themselves in one or more “orbits” in whicha first node 120 is followed by a second node 120, the second node beingthe node with the next-highest IP address.

Optionally, in such embodiments, nodes 120 might self-select, randomlyaccording to a probability, which nodes should operate in “express”orbits, each express orbit providing a substantially smaller number ofsuch nodes 120, but still accessing substantially all nodes 120 in thenetwork 110 in substantially the same order. However, in the context ofthe invention, there is no particular requirement for “express” orbits,or any similar limitation. Nodes 120 might also determine other types oforbits, such as for example an orbit restricted to (or preferring)particular types of nodes 120 or restricted to (or preferring)particular types of communication links 111. In such embodiments, eachnode 120 might determine its local region in response to its position inan orbit, whether a base-level orbit, an express orbit, or otherwise.

As nodes 120 come online or go offline, each other node 120 might sodetermine, and adjust both the basic orbit (and possibly, the expressorbits) accordingly. In one embodiment, when a first node 120 receives amessage from a newly-only node 120, that first node 120 informs othernodes 120 in its neighborhood (previously in its orbit), with the effectthat any nodes 120 that are earlier than the newly-only node 120 candetermine that the newly-only node 120 is in their neighborhood (furtheron in their orbit) and can begin communication with that newly-only node120. Similarly, when that first node 120 sends a message to anewly-offline node 120 in its neighborhood, the newly-offline node 120will fail to acknowledge (or otherwise respond) to that message, withthe effect that the first node 120 can determine that the newly-offlinenode 120 is no longer available for communication.

Local regions (alternative). In alternative embodiments, each node 120might determine a different neighborhood of local nodes 120, such as forexample all such nodes 120 associated with the same subnet, or within aselected number of subnet in hop-count distance (for example, all suchnodes 120 within three hops from subnet to subnet). In such embodiments,this has the effect that each node 120 has a position in a metric spacewithin the network 110, such that each node 120 has a known, or at leastdeterminable, hop-count distance from each other node 120. In thecontext of the invention, there is no particular requirement to use afixed number of hops for hop-count locality; for example, the hop-countstill considered “local” might vary depending upon other factors. In thecontext of the invention, there is no particular requirement to usehop-count as the measure, or the sole measure, of network distance. Forexample, nodes 120 might determine their position within a metric spacewithin the network 110 in response to reliability of communication,relative availability of bandwidth, error-rate or latency or othermeasures of communication QoS, or otherwise.

Upon self-organization of the network 110, each node 120 issubstantially able to determine which other nodes 120 are within itsparticular local region, and is substantially able to communicate withother nodes 120 within its particular local region. Nodes 120 mightcommunicate with other nodes 120 within their particular local regionusing a known protocol, such as TCP/IP or a variant thereof, or using aprotocol specific to the system 100.

Collaborative organization (alternative). In alternative embodiments,each node 120 need not select its local regions without reference toother nodes 120; for example, nodes 120 might operate collaboratively(such as for example identifying one or more nodes 120 for each subnetas representatives of that subnet) to determine a particular localregion for each node 120.

Peer-to-peer privacy.

In one embodiment, nodes 120 might make communications private, such asusing encryption and decryption of messages 112 or of message payloads.In one embodiment, encryption and decryption might use a public-keycryptosystem to assure privacy and accountability of messages 112, and asecure hash code to assure that messages 112 are tamper-evident. In thecontext of the invention, there is no particular requirement for anysuch limitation; for example, nodes 120 might use any form ofencryption, encoding, chaffing, obfuscation, or other techniques.

In embodiments in which key distribution or certification authoritiesare involved, nodes 120 use the server as their certification authority,obtaining the server's public key (and possibly hash codes) to assurethat data from the server is accurate and authentic. Nodes 120 canpropagate the server's public key along orbits, or alternativelypossibly using other communication links 111.

In alternative embodiments, nodes 120 might self-organize the network110 to determine those key distribution or certification authorities ina manner similar to their determination of local regions. For example,nodes 120 might randomly determine one or more base-level certificationauthorities for each such local region, determine wider-area localregions for each such set of certification authorities, determine one ormore higher-level certification authorities for those base-levelcertification authorities, and similarly, with the effect of determiningone or more certification authorities for the network 110 withoutsubstantially any external intervention. In such alternativeembodiments, the server provides the certification authority for thenetwork, with the effect that each node has direct access to those codesneeded to authenticate information from other nodes. However, in thecontext of the invention, there is no particular need for use ofmultiple levels of any of: key distribution, certification, or othersecurity techniques.

In one embodiment, queries from user stations 130, data andinstructions, information to be sent to user stations 130, and othercommunications between and among nodes 120 and user stations 130, aremaintained confidential to only those nodes 120 and only those userstations 130 (and their users 131) who are appropriately authenticatedand authorized. For example, data and instructions might be encryptedusing a public key for each node 120 for which those data andinstructions are intended. However, in the context of the invention,there is no particular requirement for encryption of data directed toparticular nodes 120, as each particular node 120 receiving such data orinstructions can determine, using a local client application, whetherthose data or instructions are intended for that particular node 120.

In one embodiment, particular users 131 at user stations 130 might beauthorized for only a subset of possible management functions. For someexamples, some users 131 might be authorized to perform one or more ofthe following tasks:

Some users 131 might only be authorized to review the number of assetsassigned to particular uses (such as for example, monitoring whetherlicense usage is within contract limits for the network 110).

Some users 131 might only be authorized to review whether there areunusual system events ongoing (such as for example, malware spreading inthe network 110).

Some users 131 might only be authorized to upgrade software applications(such as for example, software applications obtained from designatedvendors).

Some users 131 might only be authorized to make other identified changesto the network 110 (such as for example reallocating assets from onedepartment to another).

Other and further authorization types might be identified.

In such embodiments, particular users 131 at user stations 130 mighteach be associated with distinct sets of authorized rights.

Scanners.

In one embodiment, the nodes 120 each attempt to scan their local regionof the network for managerial information. In alternative embodiments, aselected subset of nodes 120, sometimes called “scanners” herein, areassigned this task. However, in the context of the invention, there isno particular requirement for limiting the set of scanners to much fewerthan substantially all such nodes 120. In such alternative embodimentswhere not all nodes 120 are scanners, the scanners might be changed fromtime to time, with the effect that no individual node 120 need beexcessively burdened with this task.

That managerial information might include one or more of the following:

Identities and locations of communication links 111 that are not knownto any user station 130.

Identities and locations of communication links 111 that are notworking, that are unreliable, that lack adequate bandwidth capacity,that lag excessively or fail to meet other measures of communicationQoS, or otherwise.

Identities and locations of communication links 111 that otherwiseviolate rules set by a network administrator (such as for example are inexcessive use, or otherwise).

Identities and locations of nodes 120 that have not identifiedthemselves to any user station 130.

Identities and locations of nodes 120 that are crashed, disconnected, orotherwise not working or not adequately working.

Identities and locations of nodes 120 that have missing applicationsoftware (such as for example anti-virus software or other malwareprevention that is not installed), or which have application softwarethat was installed improperly or incompletely, which was removed, orwhich has improper settings (such as for example network browsers thatare set with excessively loose security constraints).

Identities and locations of nodes 120 whose authentication is outdated,or has been modified or revoked by their certification authority.

Identities and locations of nodes 120 that otherwise violate rules setby a network administrator (such as for example that have been alteredfrom an acceptable configuration by their user, or have installed gamesoftware, or maintain personal files, or otherwise).

In one embodiment, each scanners is assigned to look only at arelatively small portion of the network 110. For example, a node 120assigned as a scanner might be directed to look for nodes 120 in itslocal neighborhood 113, such as those nodes 120 preceding it orfollowing it in its orbit. As described herein, nodes 120 might easilydetermine those nodes 120 newly-arrived in the network 110, or thosenodes 120 newly-departed from the network 110. Similarly, nodes 120might easily determine those communication links 111 or nodes 120 havingthe properties described just above, or other properties.

Scanners need not be limited to their local neighborhood 113. Forexample, scanners might be assigned to continue looking for nodes 120until they find something worthwhile to report. Alternatively, scannersmight be assigned to look for nodes 120 at distances which vary inresponse to factors about the network 110, such as for example howeffectively the network 110 is currently operating, or for example whatfraction of nodes 120 are currently assigned to operate as scanners.

While each individual scanning node does not need to review any largeportion of the network, collectively those scanning nodes can cover theentire network, having the effect of revealing any such deficient linksor nodes with relatively little resource use. This has the effect ofproviding a substantial advantage over those known methods which scanthe entire network from a central location (or a set of centrallocations, such as a hierarchy of central locations). In such knownmethods, a relatively large amount of traffic is communicated betweenthose central locations and leaf nodes of the network, with the effectsof (1) taking a relatively large amount of time to perform such a scan,(2) taking up relatively large amounts of resources to perform a scan,(3) occupying network resources that would otherwise be devoted tooperations. Accordingly, in such known methods, scanning is performedrelatively rarely, while in the context of the invention, scanning canbe performed in substantially real time.

Shards.

As noted above, user stations 130 might upload large data units to theserver. In such cases, the server downloads those data units (orfractions thereof) to selected nodes 120, with the effect that theserver can download those data units to the nodes 120 using only arelatively few communication links 111. Similarly, user stations 130might download large data units from the server. In such cases, theserver receives those data units from selected nodes 120 (which might beself-selected, such as for example in cases where nodes 120 haveinformation to report to the server). This has the effects that theserver need not be burdened with substantial communication for downloador upload, and that relatively few communication links 111 need beburdened with use for download or upload.

Such data units are broken into individual shards, which are distributedthroughout the network (or aggregated from within the network) usingpeer-to-peer communication. For example, if a data unit (such as forexample an application software update) includes 5 Gigabytes of data andinstructions, distributing that data unit to thousands of individualnodes 120 would involve a relatively large amount of communicationbandwidth. In such an example, the data unit might be broken into 5,000shards, each only 1 Megabyte, with the server downloading that entiredata unit to only a relatively few nodes 120.

Each such node 120 receiving the data unit maintains a fraction of theshards associated with that data unit 120, The node 120 communicates thedata unit (or its portion thereof) to a following node in its localneighborhood 113. However, in the context of the invention, there is noparticular requirement for using such other definitions. This has theeffect that the server need only download the data unit a relatively fewtimes, to successfully deliver the data unit into the network 110.

Each node selects the shards it maintains independently of whether thoseshards are maintained by other nodes, with the effect that if a fractionof the network is not operational, not reachable, or otherwiseincapacitated, the likelihood that at least one copy of each shard ismaintained in that remaining fraction of the network that is operationaland reachable is independent of the nature of whatever failure modeoccurred. All nodes coupled to that subnet have relatively easy accessto all shards within their own neighborhood, so it is generally adequatefor a neighborhood to maintain only a few copies of each such shard. Ifa particular neighborhood is missing a shard, its nodes can request thatshard from the server or from other neighborhoods, with the effect ofdistributing or collecting data for communication with user stationswith relatively little resource use.

Those relatively large data units might include one or more of thefollowing:

Data or instructions (such as for example FAQ's, as described below), tobe distributed from user stations 130 to relatively large numbers ofnodes 120.

Historical data relating to operations or transactions occurring oncommunication links 111 or nodes 120, to be reported to user stations130.

Un-aggregated query results, collected from relatively large numbers ofnodes 120, and to be reported to user stations 130.

Updates to software applications, to be distributed from user stations130 to relatively large numbers of nodes 120.

Each node 120 maintains a record of which shards it has collected fromthe data unit. When a node 120 has all shards from the data unit, it cancease receiving shards (but might continue re-distributing those shardsto other nodes 120 within its own local neighborhood 113 in its orbit).As all nodes within a local neighborhood 113 in its orbit haverelatively easy access to shards from other nodes within that localneighborhood 113, redistribution of shards within that localneighborhood 113 is also relatively easy.

When a node 120 has waited a sufficient time without receiving allshards from the data unit, it might send a request to the server,requesting or sending the missing shards for the data unit, having theeffect of downloading (sending data from user stations 130 to distributeto the network 110) or uploading (sending data collected from thenetwork 110 to user stations 130) for communication with user stations130 with relatively little resource use and in a significantly shortertime.

Audit Rules.

A particular set of relatively frequently-asked network queries,sometimes called “FAQ's” herein, are automatically executed from time totime by one or more nodes 120 within the network 110. In one embodiment,those FAQ's are automatically injected into the network, as if they wererequested from time to time by user stations 130. For FAQ's to be“automatically injected,” they might actually be injected into to thenetwork 110 from one or more user stations 130, or they might bemaintained at one or more local nodes 120, from which they arerevivified from time to time to be re-executed. In the context of theinvention, there is no particular requirement for either of theselimitations. For example, FAQ's might be maintained in a database,either external or internal to the network 110, from which nodes 120read those FAQ's and re-execute them from time to time.

Upon re-execution, responses to these FAQ's are uploaded to one or moreuser stations 130, where those responses are cached. In the context ofthe invention, there is no particular requirement for this limitation;for example, user stations 130 might maintain those responses in adatabase to which they have access. User stations 130 maintain a userinterface, which includes a dashboard that presents those cachedresponses to users 131. The dashboard might present some or all of thecached responses, some or all of the most recent such cached responses,or might present those cached responses to users 131 upon their request.

This has the effect that many such queries need not be initiated byusers, as answers are already maintained available on the dashboard.Dashboards are configurable by users, with the effect that users canmaintain a view of relatively fresh responses to such FAQ's with lesslatency than if those FAQ's were initiated only when a response wasdesired. Since information collection is performed in parallel anddistributed among leaf nodes of the network, relatively little resourceuse need be expended, with the effect that network stations can presentthe answers to many such FAQ's in real time. Similarly, computationsresponsive to those answers can be maintained on the dashboard,including aggregate values from multiple such queries, trend lines, andother statistical information.

Similarly, a set of audit or compliance rules are also automaticallyinjected into the network from time to time, possibly using a similartechnique. This has the effect that those rules are also performed inparallel by nodes as if they were explicitly instructed by networkusers. Known auditing and compliance schemas typically have dozens oreven hundreds of such rules, each of which is intended to assure thatthe network is operating within strictures imposed by regulation,contract, or administrative policy. The following are some examples ofsome possible audit or compliance rules:

It might be a contract requirement for the enterprise operating thenetwork that they have no more than 5,000 copies of Microsoft Excel inuse at any instant.

It might be a regulatory requirement for the enterprise operating thenetwork that at least 99% of all nodes 120 within the network 110 havecurrent versions of anti-virus software installed.

Since information collection and distribution is performed in paralleland distributed among leaf nodes of the network, relatively littleresource use need be expended, both (1) to determine that the network isin compliance, and (2) to assure that network nodes attempting toinitiate excess uses are disallowed from doing so.

Network debugging.

Help desk operation. In one embodiment, a user station 130 might beassigned to a “help desk” function, in which a user 131 associated withthat user station 130 is tasked with the assignment of receivingrequests for help from users of nodes 120 within the network 110, and ofsolving any problems associated with those requests for help. When ahelp desk receives a request for help, the help desk operator (that is,a user 131 tasked with the assignment of being a help desk operator)injects a query into the network 110, asking nodes 120 within thenetwork 110 to determine a prevalence of the problem associated with therequest for help. For example, one common problem is that users at nodes120 within the network 110 might discover one day that they are unableto access a peripheral within the network 110 (such as for example, aprinter) that they were able of access the day before.

In response to the query injected by the help desk operator, nodes 120within the network 110 determine a prevalence of the problem associatedwith the request for help. For example, the system 100 might usetechniques such as those described in the incorporated information, inwhich prevalence of a network problem can be determined in response tothe local states of nodes 120 within the network 110. In response to theprevalence of the problem, the help desk operator reports an evaluationof seriousness to a network engineer (that is, a user 131 tasked withthe assignment of being a network engineer). In response to the helpdesk operator's evaluation of seriousness, the network engineer canassign a priority to solving the problem.

In response to a priority to solving the problem, the network engineerinjects an instruction to the network 110 (that is, a message 112including data and instructions to be executed by nodes 120 in thenetwork 110) to correct the problem. This has the effect that networkengineers can assign relatively early solutions to those networkproblems that help desk operators have assigned relatively highpriority.

Network outages. Similarly, in one embodiment, one or more users atnodes 120 within the network 110 might report that all or part of thenetwork 110 is not operational. This might include lack of communicationwithin the network 110, lack of communication between the network 110and an external source or destination, lack of operation of some or allof the nodes 120 within the network 110, or otherwise.

As noted above, scanners might determine which nodes 120 within thenetwork 110 are not operational or otherwise, or for which communicationis unavailable, compromised, or otherwise. This has the effect that anetwork manager (such as for example a user 131 at a user station 130tasked with the assignment of managing the network 110) can determineone or more sources of the network outage.

Similar to techniques noted above, one or more network engineers caninject instructions to the network 110 (to be executed by nodes 120 inthe network 110, possibly including any particular node 120 capable ofresponding to an instruction message 112, even if that particular node120 is not otherwise operational) to ameliorate the network outage. Inone embodiment, network engineers continue to inject instructions untilthe network outage is completely ameliorated, that is, fixed.

Similar to techniques noted above, one or more network managers caninject queries to the network 110 (such as for example, which might beFAQ's presented at one or more dashboards at user stations 130), toconfirm that the instructions injected into the network 110 have beenexecuted, that the sources of the network outage have been ameliorated,and that the network 110 is once again operational. These techniqueshave the effect that network outages can be (1) identified anddiagnosed, (2) corrected, or at least ameliorated, and (3) confirmedthat the correction has been performed.

What is claimed is:
 1. A method, comprising: in a network of a pluralityof machines and at least one server, wherein: each machine of theplurality of machines has a respective machine identifier, the pluralityof machines have self-organized into a linearly ordered sequence inaccordance with a predefined order of the respective machine identifiersof the plurality of machines, wherein a respective machine that is newlycoupled to the network proactively queries one or more existing machinesin the linearly ordered sequence to establish its position in thelinearly ordered sequence, the linearly ordered sequence includes one ormore local segments, each local segment including a first machine of thelocal segment followed by a sequence of second machines of the localsegment, and each machine of a respective local segment is configured tocommunicate, via a respective network communication link, with acorresponding next machine in the respective local segment: at the firstmachine of the respective local segment, injecting, into the network ofthe plurality of machines, a query regarding a set of managementinformation regarding the respective local segment that corresponds tothe first machine, wherein: the query includes a header and a payload;the query is forwarded along the respective local segment through therespective network communication links of the first machine and thesequence of second machines in the respective local segment, eachmachine of the first subset of machines in the respective local segmentresponds to the query by adding its respective local information to anyanswers already accumulated in the payload of the query; and at leastone of the sequence of second machines in the respective local segmentsends, to the at least one server of the network, a report messagecontaining aggregated management information that has been collected inthe payload of the query, wherein the method further comprises: at thefirst machine of the plurality of machines in the network: prior toestablishing respective communications with the corresponding nextmachine of the first machine, identifying a subset of the plurality ofmachines that have respective machine addresses within a predeterminedproximity to the respective machine address of the first machine; andnotifying the subset of the plurality of machines of entry of the firstmachine into the network and the respective machine address of the firstmachine.
 2. The method of claim 1, further comprising: at the firstmachine of the respective local segment, injecting, into the network ofthe plurality of machines, a machine command that specifies a set ofoperations to be executed by a first subset of machines in therespective local segment, wherein the command designates the firstsubset of machines by specifying a shared machine property for the firstsubset of machines, wherein: the machine command is forwarded along therespective local segment through the respective network communicationlinks of the first machine and the sequence of second machines followingthe first machine in the respective local segment, and each machine ofthe first subset of machine having the shared machine property executesthe set of operations in response to receiving the machine command. 3.The method of claim 1, wherein the query is selected from a set offrequently-asked network queries and automatically injected into thenetwork at multiple times.
 4. The method of claim 1, wherein the queryis selected from a set of audit or compliance rules and automaticallyinjected into the network at multiple times.
 5. The method of claim 1,including: at the at least one server of the network: receivingrespective registration messages from each of the plurality of machinescurrently coupled to the network, wherein each of the plurality ofmachines is configured to send registration messages to the server at arespective frequency such that a load on the server has an upper boundlimited to a constant with respect to a varying size of the network. 6.The method of claim 1, further comprising: at the at least one server ofthe network: sending an instruction message to the first machines of oneor more local segments of the linearly ordered sequence, wherein theinstruction message specifies (1) an action to be performed by a subsetof the plurality of machines and (2) a criterion for selecting thesubset of the plurality of machines.
 7. The method of claim 1, whereinthe query was initially generated by the first machine based on a localoccurrence of a first state at the first machine.
 8. The method of claim1, wherein the payload of the query includes a hash code correspondingto a logical representation of the requested set of managementinformation.
 9. The method of claim 1, further comprising: at the firstmachine of the plurality of machines in the network: prior to decouplingfrom the network, informing respective presence of a first subset of theplurality of machines to a second subset of the plurality of machines,wherein the first subset and the second subset are not overlapping, thefirst subset of machines includes a machine having a respective lowermachine addresses relative to the respective machine address of thefirst machine among the plurality machines, and the second subset ofmachines includes a machine having a respective higher machine addressesrelative to the respective machine address of the first machine amongthe plurality of machines; and decoupling from the network after theinforming.
 10. A system, including: a device comprising one or moreprocessors, and memory storing instructions, wherein: the device iscoupled to a network of a plurality of machines and at least one server,each machine of the plurality of machines has a respective machineidentifier, the plurality of machines have self-organized into alinearly ordered sequence in accordance with a predefined order of therespective machine identifiers of the plurality of machines, wherein arespective machine that is newly coupled to the network proactivelyqueries one or more existing machines in the linearly ordered sequenceto establish its position in the linearly ordered sequence, the linearlyordered sequence includes one or more local segments, each local segmentincluding a first machine of the local segment followed by a sequence ofsecond machines of the local segment, and each machine of a respectivelocal segment is configured to communicate, via a respective networkcommunication link, with a corresponding next machine in the respectivelocal segment, and the device serves as the first machine of arespective local segment of the device, and, when the instructions areexecuted by the one or more processors of the device, performs machineoperations comprising: injecting, into the network of the plurality ofmachines, a query regarding a set of management information regardingthe respective local segment that corresponds to the first machine,wherein: the query includes a header and a payload; the query isforwarded along the respective local segment of the first machinethrough the respective network communication links of the first machineand the sequence of second machines in the respective local segment,each machine of the first subset of machines in the respective localsegment responds to the query by adding its respective local informationto any answers already accumulated in the payload of the query; and atleast one of the sequence of second machines in the respective localsegment sends, to the at least one server of the network, a reportmessage containing aggregated management information that has beencollected in the payload of the query, wherein the machine operationsfurther include: prior to establishing respective communications withthe corresponding next machine of the first machine, identifying asubset of the plurality of machines that have respective machineaddresses within a predetermined proximity to the respective machineaddress of the first machine; and notifying the subset of the pluralityof machines of entry of the first machine into the network and therespective machine address of the first machine.
 11. The system of claim10, wherein the machine operations further comprise: injecting, into thenetwork of the plurality of machines, a machine command that specifies aset of operations to be executed by a first subset of machines in therespective local segment, wherein the command designates the firstsubset of machines by specifying a shared machine property for the firstsubset of machines, wherein: the machine command is forwarded along therespective local segment through the respective network communicationlinks of the first machine and the sequence of second machines followingthe first machine in the respective local segment, and each machine ofthe first subset of machine having the shared machine property executesthe set of operations in response to receiving the machine command. 12.The system of claim 10, wherein the query is selected from a set offrequently-asked network queries and automatically injected into thenetwork at multiple times.
 13. The system of claim 10, wherein the queryis selected from a set of audit or compliance rules and automaticallyinjected into the network at multiple times.
 14. The system of claim 10,further including: the at least one server of the network, wherein theat least one server includes one or more processors and memory, thememory includes instructions, which when executed by the one or moreprocessors of the at least one server, cause the one or more processorsof the at least one server to perform server operations comprising:receiving respective registration messages from each of the plurality ofmachines currently coupled to the network, wherein each of the pluralityof machines is configured to send registration messages to the server ata respective frequency such that a load on the server has an upper boundlimited to a constant with respect to a varying size of the network. 15.The system of claim 10, further including: the at least one server ofthe network, wherein the at least one server includes one or moreprocessors and memory, the memory storing instructions, which whenexecuted by the one or more processors of the at least one server, causethe one or more processors of the at least one server to perform serveroperations comprising: sending an instruction message to the firstmachines of one or more local segments of the linearly ordered sequence,wherein the instruction message specifies (1) an action to be performedby a subset of the plurality of machines and (2) a criterion forselecting the subset of the plurality of machines.
 16. The system ofclaim 10, wherein the query was initially generated by the first machinebased on a local occurrence of a first state at the first machine. 17.The system of claim 10, wherein the payload of the query includes a hashcode corresponding to a logical representation of the requested set ofmanagement information.
 18. The system of claim 10, wherein the machineoperations further include: prior to decoupling from the network,informing respective presence of a first subset of the plurality ofmachines to a second subset of the plurality of machines, wherein thefirst subset and the second subset are not overlapping, the first subsetof machines includes a machine having a respective lower machineaddresses relative to the respective machine address of the firstmachine among the plurality machines, and the second subset of machinesincludes a machine having a respective higher machine addresses relativeto the respective machine address of the first machine among theplurality of machines; and decoupling from the network after theinforming.
 19. A non-transitory computer-readable medium havinginstructions stored thereon, the instructions, when executed by one ormore processors, cause the processors to perform operations comprising:in network of a plurality of machines and at least one server, wherein:each machine of the plurality of machines has a respective machineidentifier, the plurality of machines have self-organized into alinearly ordered sequence in accordance with a predefined order of therespective machine identifiers of the plurality of machines, wherein arespective machine that is newly coupled to the network proactivelyqueries one or more existing machines in the linearly ordered sequenceto establish its position in the linearly ordered sequence, the linearlyordered sequence includes one or more local segments, each local segmentincluding a first machine of the local segment followed by a sequence ofsecond machines of the local segment, and each machine of a respectivelocal segment is configured to communicate, via a respective networkcommunication link, with a corresponding next machine in the respectivelocal segment: at the first machine of a respective local segment of thedevice: injecting, into the network of the plurality of machines, aquery regarding a set of management information regarding the respectivelocal segment that corresponds to the first machine, wherein:  the queryincludes a header and a payload;  the query is forwarded along therespective local segment of the first machine through the respectivenetwork communication links of the first machine and the sequence ofsecond machines in the respective local segment,  each machine of thefirst subset of machines in the respective local segment responds to thequery by adding its respective local information to any answers alreadyaccumulated in the payload of the query; and  at least one of thesequence of second machines in the respective local segment sends, tothe at least one server of the network, a report message containingaggregated management information that has been collected in the payloadof the query, wherein the operations further include: at the firstmachine of the plurality of machines in the network: prior toestablishing respective communications with the corresponding nextmachine of the first machine, identifying a subset of the plurality ofmachines that have respective machine addresses within a predeterminedproximity to the respective machine address of the first machine; andnotifying the subset of the plurality of machines of entry of the firstmachine into the network and the respective machine address of the firstmachine.
 20. The non-transitory computer-readable medium of claim 19,wherein the operations further comprise: at the first machine of therespective local segment, injecting, into the network of the pluralityof machines, a machine command that specifies a set of operations to beexecuted by a first subset of machines in the respective local segment,wherein the command designates the first subset of machines byspecifying a shared machine property for the first subset of machines,wherein: the machine command is forwarded along the respective localsegment through the respective network communication links of the firstmachine and the sequence of second machines following the first machinein the respective local segment, and each machine of the first subset ofmachine having the shared machine property executes the set ofoperations in response to receiving the machine command.
 21. Thenon-transitory computer-readable medium of claim 19, wherein the queryis selected from a set of frequently-asked network queries andautomatically injected into the network at multiple times.
 22. Thenon-transitory computer-readable medium of claim 19, wherein the queryis selected from a set of audit or compliance rules and automaticallyinjected into the network at multiple times.
 23. The non-transitorycomputer-readable medium of claim 19, wherein the operations furthercomprise: at the at least one server of the network: receivingrespective registration messages from each of the plurality of machinescurrently coupled to the network, wherein each of the plurality ofmachines is configured to send registration messages to the server at arespective frequency such that a load on the server has an upper boundlimited to a constant with respect to a varying size of the network. 24.The non-transitory computer-readable medium of claim 19, wherein theoperations further comprise: at the at least one server of the network:sending an instruction message to the first machines of one or morelocal segments of the linearly ordered sequence, wherein the instructionmessage specifies (1) an action to be performed by a subset of theplurality of machines and (2) a criterion for selecting the subset ofthe plurality of machines.
 25. The non-transitory computer-readablemedium of claim 19, wherein the query was initially generated by thefirst machine based on a local occurrence of a first state at the firstmachine.
 26. The non-transitory computer-readable medium of claim 19,wherein the payload of the query includes a hash code corresponding to alogical representation of the requested set of management information.27. The non-transitory computer-readable medium of claim 19, wherein theoperations further include: prior to decoupling from the network,informing respective presence of a first subset of the plurality ofmachines to a second subset of the plurality of machines, wherein thefirst subset and the second subset are not overlapping, the first subsetof machines includes a machine having a respective lower machineaddresses relative to the respective machine address of the firstmachine among the plurality machines, and the second subset of machinesincludes a machine having a respective higher machine addresses relativeto the respective machine address of the first machine among theplurality of machines; and decoupling from the network after theinforming.